package br.com.churrascariabrasadeouro.negocio;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Date;

import br.com.churrascariabrasadeouro.Principal;

public class Estoque {
	
	
		private Integer id;
		private double valor;		
		private Date data;
		private int quantidade;
		private String descricao;
	//private ArrayList<Item> itens = new ArrayList<Item>();

		/**
		 * @param data the data to set
		 */
		public void setDescricao(String descricao) {
			this.descricao = descricao;
		}
		public String getDescricao() {
			return descricao;
		}
		
		public void setData(Date data) {
			this.data = data;
		}

		/**
		 * @return the data
		 */
		public Date getData() {
			return data;
		}
		/**
		 * @param valor the valor to set
		 */
		public void setValor(double valor) {
			this.valor = valor;
		}
		public int getQuantidade() {
			return quantidade;
		}
		public void setQuantidade(int quantidade) {
			this.quantidade = quantidade;
		}
		/**
		 * @return the valor
		 */
		public double getValor() {
			return valor;
		}
		public void setId(Integer id) {
			this.id = id;
		}
		public Integer getId() {
			return id;
		}
		//EXCLUIR PRODUTO NO ESTOQUE 
		public Integer excluirEstoque(Integer id){
			try {
				Connection conexao = Principal.banco.obterConexao();
				PreparedStatement ps = conexao.prepareStatement("DELETE FROM ESTOQUE WHERE ID=?");
				ps.setInt(1, id);
				ps.execute();
				conexao.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			return id;
		}
		// LISTAR TODOS OS PRODUTOS DO ESTOQUE
		public ArrayList<Estoque> listarTodoEstoque(){
			ArrayList<Estoque> eprodutos = new ArrayList<Estoque>();
			try {
				Connection conexao = Principal.banco.obterConexao();
				Statement stmt = conexao.createStatement();
				ResultSet rs = stmt.executeQuery("Select ID,DESCRICAO,VALOR, QUANTIDADE FROM ESTOQUE");
				while(rs.next()){
					Estoque eproduto = new Estoque();
					eproduto.setId(rs.getInt(1));
					eproduto.setDescricao(rs.getString(2));
					eproduto.setValor(rs.getDouble(3));
					eproduto.setQuantidade(rs.getInt(3));
					eprodutos.add(eproduto);
				}
				conexao.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
			System.out.println(" "+eprodutos.size());
			return eprodutos;
		}
		
		public Integer cadastrarEstoque(Estoque eproduto){
			try {
				Connection conexao = Principal.banco.obterConexao();
				PreparedStatement ps = conexao.prepareStatement("insert into eproduto " +
						"(DESCRICAO,VALOR,QUANTIDADE,DATAHORA) values (?,?,?,?)");
				
				ps.setString(1, eproduto.getDescricao());
				ps.setDouble(2, eproduto.getValor());
				ps.setInt(3, eproduto.getQuantidade());
				ps.setDate(3, new java.sql.Date(new Date().getTime()));
				System.out.println(" "+eproduto);
				ps.execute();
				conexao.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			return null;
			
		
		}
		public void alterarEstoque(Estoque eproduto) {
			try {
				Connection conexao = Principal.banco.obterConexao();
				PreparedStatement ps = conexao.prepareStatement("UPDATE ESTOQUE SET DESCRICAO=?, VALOR=?, QUANTIDADE=?, DATAHORA=? " +
						"WHERE ID=?");
				ps.setString(1, eproduto.getDescricao());
				ps.setDouble(2, eproduto.getValor());
				ps.setInt(3, eproduto.getQuantidade());
				ps.setDate(3, new java.sql.Date(new Date().getTime()));
				ps.setInt(4, eproduto.getId());
				ps.execute();
				conexao.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}		
		}
	}

	


